package cn.tedu.sp06;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
//

@EnableCircuitBreaker//启用 hystrix 断路器
//@EnableDiscoveryClient//eureka启动注解可以不写
@SpringBootApplication
public class Sp06RibbonApplication {

	public static void main(String[] args) {
		SpringApplication.run(Sp06RibbonApplication.class, args);
	}

	/**
	 * 创建 RestTemplate 实例，并存入 spring 容器
	 * 可以放在启动类
	 * 也可以放在自定义的配置类中，使用@Configuration注解
	 * @return
	 */

	@Bean
	@LoadBalanced//ribbon的注解 负载均衡注解-对RestTemplate进行增强
	public RestTemplate restTemplate(){
		//创建工厂对象设置ribbon的超时时间
		SimpleClientHttpRequestFactory f=new SimpleClientHttpRequestFactory();
		f.setConnectTimeout(1000);//连接超时
		f.setReadTimeout(1000);//等待超时
		return new RestTemplate(f);
	}
}
